#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <assert.h>

#define FILE_NAME(number) "log.txt"#number

//每一个宏，对应的数值，只有一个比特位是1，彼此位置不重叠
//#define ONE 0x1
//#define TWO  (1<<1)//0x2
//#define THREE 0x4
//#define FOUR  0x8

//void show(int flags)
//{
//  if(flags & ONE) printf("one\n");
//  if(flags & TWO) printf("two\n");
//  if(flags & THREE) printf("three\n");
//  if(flags & FOUR) printf("four\n");
//
//}

int main()
{
  printf("stdin->fd: %d\n",stdin->_fileno);
  printf("stdout->fd :%d\n",stdout->_fileno);
  printf("stderr->fd: %d\n",stderr->_fileno);
  umask(0);
  //"w" ->FILE_NAME, O_WRONLY | O_CREAT | O_TRUNC
  //"a" ->O_WRONLY | O_CREAT | O_APPEND 
  int fd0 =open(FILE_NAME(1), O_WRONLY | O_CREAT | O_APPEND, 0666);
  int fd1 =open(FILE_NAME(2), O_WRONLY | O_CREAT | O_APPEND, 0666);
  int fd2 =open(FILE_NAME(3), O_WRONLY | O_CREAT | O_APPEND, 0666);
  int fd3 =open(FILE_NAME(4), O_WRONLY | O_CREAT | O_APPEND, 0666);
  int fd4 =open(FILE_NAME(5), O_WRONLY | O_CREAT | O_APPEND, 0666);
 //int fd =open(FILE_NAME, O_RDONLY);
//  if(fd < 0)
//  {
//    perror("open");
//    return 1;
//  }
//  
//  char buffer[1024];
//  ssize_t num = read(fd , buffer, sizeof(buffer) - 1);
//  if(num > 0) buffer[num] = 0;
//  printf("%s",buffer);

//  int cnt = 5;
//  char outBuffer[64];
//
//  while(cnt)
//  {
//    sprintf(outBuffer,"%s:%d\n","aaaa", cnt--);
//
//    write(fd, outBuffer, strlen(outBuffer));
//  }

  printf("fd:%d\n",fd0);
  printf("fd:%d\n",fd1);
  printf("fd:%d\n",fd2);
  printf("fd:%d\n",fd3);
  printf("fd:%d\n",fd4);

  close(fd0);
  close(fd1);
  close(fd2);
  close(fd3);
  close(fd4);







 // show(ONE);
 // printf("------------------------\n");
 // show(TWO);
 // printf("------------------------\n");
 // show(ONE | TWO);
 // printf("------------------------\n");
 // show(ONE | TWO | THREE);
 // printf("------------------------\n");
 // show(ONE | TWO | THREE | FOUR);
 // printf("------------------------\n");



  //0666 & ~umask
 // FILE* fp =fopen(FILE_NAME ,"w");//r,w,r+(读写，不存在出错)，w+(读写，不存在创建),a(append ,追加)，a+()
  //FILE* fp =fopen(FILE_NAME ,"r");//r,w,r+(读写，不存在出错)，w+(读写，不存在创建),a(append ,追加)，a+()
 // FILE* fp =fopen(FILE_NAME ,"a");//r,w,r+(读写，不存在出错)，w+(读写，不存在创建),a(append ,追加)，a+()
//  if(fp == NULL)
//  {
//    perror("fopen");
//    return 1;
//  }
//
// // char buffer[64];
// // while(fgets(buffer,sizeof(buffer) - 1, fp) != NULL)
// // {
// //   buffer[strlen(buffer) - 1] = 0;
// //   puts(buffer);
// // }
//
////  int cnt = 5;
////  while(cnt)
////  {
////    fprintf(fp,"%s:%d\n","hello bit",cnt--);
////  }
//
//  fclose(fp);








//  chdir("/home/minicount");
//  while(1)
//  {
//    printf("我是一个进程：%d\n",getpid());
//    sleep(1);
//  }
//  return 0;
}
